// [[ OnflowGenerator File UUID: 8627b3cd15364649bf079025cd797865  ]]
package com.itdct.onflow.system.file.qo

import com.itdct.onflow.core.qo.BaseQo
import com.itdct.onflow.core.type.Add
import com.itdct.onflow.core.type.Update
import io.swagger.v3.oas.annotations.media.Schema
import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotNull
import org.hibernate.validator.constraints.Length
import java.util.*

/**
 * @author DCTANT
 * @date 2025-09-28 16:32:52
 * @version 1.0
 * @description 系统传输中心编辑入参
 */
@Schema(name = "系统传输中心编辑入参", description = "系统传输中心编辑入参")
class SysTransferCenterEditQo : BaseQo() {
    // [[ OnflowGenerator Range (- fields -) Start ]]
    @Schema(title = "任务名称", example = "")
    @NotBlank(message = "请输入任务名称", groups = [Add::class, Update::class])
    @Length(max = 200, message = "任务名称不能超过200个字符", groups = [Add::class, Update::class])
    var name: String? = null

    @Schema(title = "传输类型", example = "")
    @NotNull(message = "请输入传输类型", groups = [Add::class, Update::class])
    var transferType: Int? = null

    @Schema(title = "执行状态", example = "")
    @NotNull(message = "请输入执行状态", groups = [Add::class, Update::class])
    var executeState: Int? = null

    @Schema(title = "平台类型", example = "")
    @NotBlank(message = "请输入平台类型", groups = [Add::class, Update::class])
    @Length(max = 50, message = "平台类型不能超过50个字符", groups = [Add::class, Update::class])
    var platformType: String? = null

    @Schema(title = "文件数量", example = "")
    @NotNull(message = "请输入文件数量", groups = [Add::class, Update::class])
    var fileCount: Int? = null

    @Schema(title = "所属模块", example = "")
    @NotBlank(message = "请输入所属模块", groups = [Add::class, Update::class])
    @Length(max = 100, message = "所属模块不能超过100个字符", groups = [Add::class, Update::class])
    var moduleName: String? = null

    @Schema(title = "成功数量", example = "")
    @NotNull(message = "请输入成功数量", groups = [Add::class, Update::class])
    var successCount: Int? = null

    @Schema(title = "失败数量", example = "")
    @NotNull(message = "请输入失败数量", groups = [Add::class, Update::class])
    var failCount: Int? = null

    @Schema(title = "跳过数量", example = "")
    @NotNull(message = "请输入跳过数量", groups = [Add::class, Update::class])
    var skipCount: Int? = null

    @Schema(title = "错误信息", example = "")
    @Length(max = 2000, message = "错误信息不能超过2000个字符", groups = [Add::class, Update::class])
    var errorMessage: String? = null

    @Schema(title = "任务开始时间", example = "")
    var startTime: Date? = null

    @Schema(title = "任务结束时间", example = "")
    var finishTime: Date? = null

    @Schema(title = "任务所有文件打包下载地址", example = "")
    @Length(max = 600, message = "任务所有文件打包下载地址不能超过600个字符", groups = [Add::class, Update::class])
    var packageDownloadUrl: String? = null

    @Schema(title = "任务所有文件打包zip文件id", example = "")
    var packageDownloadFileId: Long? = null

// [[ OnflowGenerator Range (- fields -) End ]]
}